A server computing device, or a server, is generally a computer system within a network that is shared by client computing devices, or clients, or otherwise shared by multiple users. Types of servers can include application servers, file servers, intranet servers, e-mail servers, electronic commerce servers, print servers, proxy servers, and web servers, among other kinds of servers. Larger organizations may have tens, hundreds, or even thousands of different servers deployed on their networks worldwide.
Although organizations attempt to deploy servers in an organized fashion, in many cases servers are deployed more haphazardly. As a result, many organizations do not have a clear inventory of the number and types of servers that are functioning on their networks. Some servers may be performing duplicative functionality. Some servers may be operating at far less than maximum capacity, in terms of either storage capacity, processing capacity, or both, which is inefficient, whereas other servers may be operating at near maximum capacity, which can result in delays and system crashes. Many networks are heterogeneous environments, in which there are servers of many different types, from many different vendors, resulting in different types of system management solutions that have to be employed to manage all the servers on the network.
As organizations are attempting to get a handle on and even decrease their information technology (IT) costs, they are frequently attempting to obtain a clear picture of their server inventories. One motivation for doing so is to try to determine which servers are candidates for consolidation. For example, servers that are performing duplicative functionality, and servers that are operating at far less than their maximum capacity, are candidates for consolidating their duties with other servers.
One manner by which server inventories can be obtained is to manually populate a report or list of all the servers within a given organization. However, this approach is tedious, expensive, and can result in an inaccurate picture of the servers deployed on a network. For example, the data of the report may be populated from different, and potentially unreliable, data sources. As a result, the report may not be of much use in attempting to consolidate servers. Some servers may be overlooked and not be represented in the report, whereas other servers may have erroneous information regarding their capabilities and/or capacities added to the list.
Another manner by which server inventories can be obtained is to unleash agents, or bots, onto the network. The agents are small computer programs executed on the individual servers, collecting information regarding the servers on which they are running, and reporting back the information for consolidation into a report. However, this approach can be harmful to the overall health of the network. Some servers may not easily accept the running of foreign computer programs, and as a result may crash, causing potentially mission critical functionality to fail. Other servers may be incompatible with the agents, resulting in these servers not being tallied within the report. Overall, unleashing agents onto the servers of a network generally at the very least slows down response time of the network, which can frustrate users.
Furthermore, unleashing agents onto hundreds or thousands of servers becomes impracticable, especially when the network administrator does not have an accurate inventory of the servers connected to a network. Indeed, if the server inventory is inaccurate, then it becomes nearly impossible to install agents on all the servers, since all of the servers are not known a priori. Additionally, the agents usually have to be manually removed after they have collected the needed data, which further adds to costs is another area in which errors can occur. For these and other reasons, therefore, there is a need for the present invention.